// 引入echarts的核心
import * as echarts from "echarts/core";
// 引入echarts的图表
import { BarChart, LineChart } from "echarts/charts";
// 引入echarts的组件
import {
  // TitleComponent,
  // TooltipComponent,
  GridComponent,
  // // 数据集组件
  // DatasetComponent,
  // // 内置数据转换器组件 (filter, sort)
  // TransformComponent
} from "echarts/components";
import { LabelLayout, UniversalTransition } from "echarts/features";
import { CanvasRenderer } from "echarts/renderers";

// 引入相应的类型
import type {
  // 系列类型的定义后缀都为 SeriesOption
  BarSeriesOption,
  LineSeriesOption,
} from "echarts/charts";
import type {
  GridComponentOption, // 组件类型的定义后缀都为 ComponentOption
  // TitleComponentOption,
  // TooltipComponentOption,
  // DatasetComponentOption
} from "echarts/components";
import type { ComposeOption } from "echarts/core";

// 通过 ComposeOption 来组合出一个只有必须组件和图表的 Option 类型
export type ECOption = ComposeOption<
  BarSeriesOption | GridComponentOption | LineSeriesOption
>;

// 注册必须的组件
echarts.use([
  BarChart,
  LineChart,
  GridComponent,
  LabelLayout,
  UniversalTransition,
  CanvasRenderer,
]);

export default echarts;
